#!/bin/bash
set -e

PLUGIN_DIR="/opt/sonarqube/extensions/plugins"
SONAR_URL="http://localhost:9000"

echo " SonarQube 初始化检测开始..."

# Step 1: 检查插件目录
if [ "$(ls -1 $PLUGIN_DIR/*.jar 2>/dev/null | wc -l)" -gt 0 ]; then
  echo " 检测到插件文件："
  ls -1 $PLUGIN_DIR/*.jar
else
  echo " 未检测到任何插件文件，跳过自动加载步骤。"
  exit 0
fi

# Step 2: 等待 SonarQube 启动
echo " 等待 SonarQube 服务启动中..."
until curl -s $SONAR_URL/api/system/status | grep -q '"UP"'; do
  sleep 10
done
echo " SonarQube 服务已启动。"

# Step 3: 检查当前系统状态
STATUS=$(curl -s $SONAR_URL/api/system/status | grep -oP '(?<="status":")[^"]+')
echo " 当前系统状态: $STATUS"

# Step 4: 自动触发重启加载插件
echo " 触发 SonarQube 服务重启以加载新插件..."
curl -s -u admin:admin -X POST "$SONAR_URL/api/system/restart" || echo " 无法通过 API 重启，请确认 admin/admin 账号可用"

# Step 5: 再次等待服务恢复
echo " 等待 SonarQube 重启..."
until curl -s $SONAR_URL/api/system/status | grep -q '"UP"'; do
  sleep 10
done

echo " SonarQube 插件加载完成，系统已恢复运行！"
